export default {
  // 开启命名空间，可以解决不同模块之间成员名称冲突的问题。
  namespaced: true,
  // state的变化，之前定义为对象格式，分模块后，需定义成函数，函数中返回对象
  state () {
    return {
      age: 20,
      username: 'zhangsan'
    }
  },
  getters: {
    pf (state) {
      return state.age * state.age
    }
  },
  mutations: {
    updateAge (state, newVal) {
      // 第1个参数state是固定的，表示前面的state对象，通过它可以方便的找到state中的数据
      // 第2个参数及后续参数，需要调用时传递进来
      state.age = newVal
    }
  },
  actions: {
    updateAgeAfter3s (store, val) {
      setTimeout(() => {
        // 第1个参数 store 是固定的，表示当前的 store 对象，通过它可以方便的调用 mutations 中的方法
        // 第2个参数及后续参数，需要调用时传递进来
        store.commit('updateAge', val)
      }, 3000)
    }
  }
}
